// pages/list/list.ts
const api = require("../../utils/api");
const util = require('../../utils/common');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    showSticky: true,
    page: 1,
    search: '',
    loading: true,
    categoriesId: '',
    isLastPage: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const name = options?.name || '文章';
    wx.setNavigationBarTitle({
      title: name // 需要设置的标题文本
    });
    this.setData({
      categories: options.id,
      search: options.search
    })
    let params = {
      page: 1,
      categories: options.id,
      search: options.search
    };
    this.getList(params);
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      page:1,
      isLastPage: false
    });
    // 第一页列表
    this.getList({
      categories: this.data.categoriesId,
      page: 1,
      search: this.data.search
    });
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // console.log('22222底部-->', this.data.page);
    if (!this.data.isLastPage) {
        this.getList({
          categories: this.data.categoriesId,
          page: this.data.page,
          search: this.data.search
        });
      }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  // 获取文章列表
  getList (data) {
    const params = Object.fromEntries(
      Object.entries(data).filter(([key, value]) => value !== undefined && value !== '')
    );
    // console.log("params--->", params);
    util.handleArticleList(params, true).then(data => {      
      if (data.length < 10) {
        this.setData({
          isLastPage: true
        })
      } else {
        this.setData({
          page: this.data.page + 1
        })
      }
      this.setData({
        list: [].concat(this.data.list, data),
        loading: false
      })
    }).catch(err => {
      if (err.code == 'rest_post_invalid_page_number') {
        this.setData({
          isLastPage: true
        });
      }
    })
  }
})